package com.tangguangdi.base.core.properties;

import com.tangguangdi.base.common.annotation.Note;
import com.tangguangdi.base.common.core.ApiDefinition;
import com.tangguangdi.base.common.core.AppMode;
import com.tangguangdi.base.common.core.AppType;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.beans.factory.annotation.Value;

import java.util.ArrayList;
import java.util.List;

/**
 * 核心配置类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Note("核心配置")
public class CoreProperties {

    private static final long serialVersionUID = 1L;

    /**
     * 无参构造器
     */
    public CoreProperties() {
    }

    /**
     * 应用模式
     */
    private AppMode appMode = AppMode.Standalone;
    /**
     * 应用编码
     */
    @Value("#{'${spring.application.name:}'}")
    private String appCode;
    /**
     * 应用名称
     */
    @Value("#{'${spring.application.name:}'}")
    private String appName;

    /**
     * 应用类型
     */
    private AppType appType = AppType.MatrixServer;

    /**
     * 当前版本
     */
    private String appVersion = "1.0.0";

    /**
     * 当前版本
     */
    private String appPackage = "";

    /**
     * 开放文档
     */
    private boolean docOpen = true;

    /**
     * 接口列表
     */
    List<ApiDefinition> ApiDefinitions = new ArrayList<>();
}
